Distributed systems, including server farms, web services, and distributed, network-attached storage systems have become increasingly common, providing vast amounts of computational and storage resources. Distributed storage systems use storage space across multiple nodes throughout a potentially wide-area network. Data access routines for accessing data stored on nodes in a distributed storage system must manage multiple client sessions requiring simultaneous access. However, to maintain a consistent view of the data, modification access must be limited to one host at a time. Additionally, a client session performing multiple modifications must maintain data consistency throughout the application of the multiple modifications.